<?php
/**
*
* Alle functies die met het filter te maken hebben.
* Deze functies worden in functies.php geincluded.
*
*
*/

/**
*
* test of het filter voor de ingelogde gebruiker aan staat
*
*	@param string ingelogde gebruiker
* @return boolean true/false
*
*/
function filter_aan($naam) {
	$DB=connectdb();
	$sql = "SELECT filter FROM gebruikers WHERE naam = '$naam'";
	
	$res = $DB->query($sql);
	$resultaat=mysqli_fetch_array($res);
	$filter_aan = $resultaat[0];
	
	if ($filter_aan==1) {
		return true;
	} else {
		return false;
	}
}

/**
*
* Wisselt de status van het filter voor de ingelogde gebruiker
*
*	@param string ingelogde gebruiker
* @param string aan/uit
* @return void
*
*/

function flip_filter($naam,$switch) {
	if ($switch =="aan") {
		$s = 1;
	} else {
		$s = 0;
	}
	$sql = "UPDATE gebruikers SET filter = $s WHERE naam = '$naam'";
	$DB=connectdb();
	$res = mysqli_query($DB,$sql) or die ("Filterswitch niet gelukt");
}


/**
*
* maakt voor de ingelogde gebruiker een (veranderde) view aan.
*
*	@param string ingelogde naam gebruiker
* @param string de query achter de view
* @return void
*
*/
function maak_filter($naam,$sql) {
	//print "<br />De opslag query voor de view is: $sql<br />"; #debug
	$DB=connectdb();
	$res = $DB->query($sql);
}

/**
*
* slaat filter als string op in de gebruikerstabel.
*
*	@param string ingelogde naam gebruiker
* @param string de representatie van het filter
* @return void
*
*/
function noteer_filter($naam, $filter) {
	//print "<br />De update query voor de filter is:<br />"; # debug
	$sql = "update gebruikers set filterstring = '$filter' where naam = '$naam'";
	$DB=connectdb();
	$res = $DB->query($sql);
	
}


/**
*
* toont het gedefinieerde filter voor de ingelogde gebruiker
*
*	@param string ingelogde naam gebruiker
* @return void
*
*/

function rapporteer_filter($naam) {
	$DB=connectdb();
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	$res = $DB->query($sql);
	
	$filterrij = mysqli_fetch_array($res);
	$filterstring = $filterrij[0];
	$filter = array();
	$filter = explode(";",$filterstring);
	print"<table class=\"sjabloonzoeker\">";
	foreach ($filter as $value) {
		list($i,$v)=preg_split("/ = /",$value);
		if ($i=="RelatieveVoortgang") {
			$i = "Relatieve Voortgang";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_not") {
			$i = "Relatieve Voortgang is niet";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_lt") {
			$i = "Relatieve Voortgang is kleiner dan";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_gt") {
			$i = "Relatieve Voortgang is groter dan";
			$v = $v."%";
		}
		
		
		
		print "<tr><td classs=\"prompt\">$i</td><td >$v</td></tr>";
	}
	print "</table>";
}

function rapporteer_filter_beknopt($naam) {
	$DB=connectdb();
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	$melding ="";
  $res = $DB->query($sql);  
	
	$filterrij = mysqli_fetch_array($res);
	$filterstring = $filterrij[0];
	$filter = array();
	$filter = explode(";",$filterstring);
     
	//toon_lijst($filter);
	if (!empty($filterstring)) {
		foreach ($filter as $value) {
			list($i,$v)=preg_split("/ = /",$value);
      $detailstring[$i]="$v";
      $koppelstring = " , ";
			$vpatroon = '/^vestiging \([0-9]\)$/'; # toevoeging cijfer deel essentieel
			$vreplace = "vestiging ";
			$i=preg_replace($vpatroon,$vreplace,$i);
			if ($i=="vestiging ") {
				$koppelstring = " of ";
			}
			if ($i=="afdeling") {
				$v = vind_dienst($v);
			}
			
			if ($i=="RelatieveVoortgang") {
				$i = "Relatieve Voortgang";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_not") {
				$i = "Relatieve Voortgang is niet";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_lt") {
				$i = "Relatieve Voortgang is kleiner dan";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_gt") {
				$i = "Relatieve Voortgang is groter dan";
				$v = $v."%";
			}
            
            if ($i=="insoort") {
                $melding=trim($melding);
                $tussen_patroon= '/\,$/';
                $tussen_replace = "";
		  		      $melding = preg_replace($tussen_patroon,$tussen_replace,$melding);
                if (strstr($v,"OR")) {
                    $melding .= "(of) ";
                } else {
                    $melding .= "(en) ";
                }
            } else {
                $melding .= " ".$i."=<b>".$v."</b> $koppelstring ";
            }
		}
        //toon_lijst($filter);
		$melding = trim($melding);// spatie aan het eind in ieder geval verwijderen.
		
		// actie om het koppelteken aan het eind te verwijzeren als het echt het laatste teken is.
		$eind_patroon= '/,$/';
		$eind_replace = "";
		$test = preg_match($eind_patroon,$melding);
		$melding = preg_replace($eind_patroon,$eind_replace,$melding);
		
        
        //-------------------------------
        $filter_aan = filter_aan($naam);
       
        if ($filter_aan) {
            $melding = "filter: ".$melding;
        } else {
            $melding = "filter staat UIT";
        }
        //------------------------------

       
		// filter rapporteren	
		print "<span class=\"filterstring\">$melding</span>";
	}
}

/**
*
* rapport in een array het filter van de gebruiker.
*
*	@param string ingelogde naam gebruiker
* @return array filterstring ('veldnaam','waarde')
*
*/

function filter2array($naam) {
	$DB=connectdb();
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	$res = $DB->query($sql);
	
	$filterrij = mysqli_fetch_array($res);
	$filterstring = $filterrij[0];
	$filterlijst = array();
	if (strlen($filterstring)>1) {
		$filter = array();
		$filter = explode(";",$filterstring);

	
		// DEZE CODE MOET GEOPTIMALISEERD WORDEN
		foreach ($filter as $value) {
			$regel = preg_split('/ = /',$value);
			$i = $regel[0];
			$v = $regel[1];
		
			// Dit patroon is niet goed!!
			$patroon = "#^vestiging \(\d\)$#";
			if (preg_match($patroon,$i)) {
				$v = trim($v);
				$filterlijst['vestiging'][]=$v;
			} 
			$filterlijst[$i]=$v;
		}
	}
	//toon_lijst($filterlijst,"Filterlijst:"); #debug
	return $filterlijst;

}



function filterknop() {
	$pagina=$_SERVER['SCRIPT_NAME'];
	if (filter_aan($_SESSION['naam'])) {
		echo "<h6><a href=\"$pagina?filteren=ja\">filter <u>uit</u> zetten </a>";
	} else {
		echo "<h6><a href=\"$pagina?filteren=ja\">filter <u>aan</u> zetten </a>";
	}
	echo "<a href=\"f_filter_switch.php\">| Bewerk filter</a></h6>";

}

function check_filter($naam) {
	$DB=connectdb();
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	$res = $DB->query($sql);
	
	$filterrij = mysqli_fetch_array($res);
	if (empty($filterrij)) {
		//noteer dan de gewone string als filterstring.
		$SQL = "SELECT A.Id, A.Actief, A.Activiteit, A.ParentId, A.Vestiging, P.Programma, R.Resultaatgebied, A.GereedJaar, A.GereedMaand, A.RelatieveVoortgang, A.Status, A.Indiener, A.Eigenaar"; 
		$SQL .= " FROM DSF_activiteit A, resultaatgebied R, programma P, afdelingen AFD"; 
		$SQL .= " WHERE A.IdResultaatgebied = R.Id AND A.IdProgramma = P.Id AND A.IdAfdeling = AFD.Id AND A.actief = \"ja\""; 
		$SQL .= "	ORDER BY A.Id ASC";
		maak_filter($naam,$sql);
		
	}
}


?>
